package notes.java.sort;

/**
 * 选择排序 
 * 1、假设第1个数最小，依次和后面的数对比，如比自己小，就记下位置，一遍之后找到数组中最小的数，然后与第1个数进行交换位置
 * 2、除第1个数外，剩下的数中再找最小的，与第2个数交换位置......直到最后只剩一个数，无法交换，结束
 */
public class S1_SelectionSort {

	public static void main(String[] args) {
		// 定义一个数组
		int[] num = { 9, 5, 4, 8, 2, 1, 0, 7, 3, 6 };

		for (int i = 0; i < num.length; i++) {
			// 最小值的位置
			int minIndex = i;
			// 默认第i个位置数最小，依次和后面的数对比，比自己小，就重新定义最小数位置
			for (int j = i + 1; j < num.length; j++) {
				if (num[j] <= num[minIndex]) {
					minIndex = j;
				}
			}

			// 最小数位置与第i个位置交换
			int temp = num[i];
			num[i] = num[minIndex];
			num[minIndex] = temp;

			System.out.println("minIndex:" + minIndex + "，第" + (i + 1) + "次的结果：");
			print(num);
			System.out.println();
		}
		

	}
	
	/** 打印输出*/
	private static void print(int[] num) {
		// 输出
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + " ");
		}
	}

}
